// 导入express
const express = require('express');
const cors = require('cors');

//导入 解析jwt
const { expressjwt: jwt } = require('express-jwt');
const config = require('./config');

// 实例化
const app = express();
// 全局注册cors 解决跨域问题
app.use(cors());

// 配置解析表单的中间件
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
//配置全局jwt解析文件
// app.use(jwt({ secret: config.jwtSecretKey, algorithms: ["HS256"] }))

// 注册发送请求处理的中间件
app.use((req, res, next) => {
  res.sd = (err, status = 1) => {
    res.send({
      status,
      message: err instanceof Error ? err.message : err,
    });
  };
  next();
});

const classRouter = require('./router/class');
app.use('/bill', classRouter);

// app.use('/shop', shop_cateRouter);
//注册全局错误中间件
// app.use((err, req, res, next) => {
//     // 捕获joi 错误对象
//     if (err instanceof Joi.ValidationError) return res.sd(err.message)
//         // 捕获jwt错误对象
//         // if (err.name === 'UnauthorizedError') return res.sd(err.message)
//     if (err.name === 'UnauthorizedError') return res.send({
//         status: 1,
//         message: err.message
//     })

// })

// 启动服务器
app.listen(3001, () => {
  console.log('server is running at http://127.0.0.1:3001');
});
